home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 4: GNU Archives / Linux Cubed Series 4 - GNU Archives.iso / gnu / gawk-3.000 / gawk-3 / gawk-3.0.0 / pc / awklib / igawk < prev   
Encoding:
Text File  |  1996-01-08  |  1.6 KB  |  86 lines

  1. #! /bin/sh
  2.  
  3. # igawk --- like gawk but do @include processing
  4. # Arnold Robbins, arnold@gnu.ai.mit.edu, Public Domain
  5. # July 1993
  6.  
  7. igs=${TMP:-/tmp}/igs$$
  8. ige=${TMP:-/tmp}/ige$$
  9.  
  10. if [ "$1" = debug ]
  11. then
  12.     set -x
  13.     shift
  14. else
  15.     # cleanup on exit, hangup, interrupt, quit, termination
  16.     #trap 'rm -f $igs $ige' 0 1 2 3 15
  17.     trap 'rm -f $igs $ige' 0 2 15
  18. fi
  19.  
  20. while [ $# -ne 0 ] # loop over arguments
  21. do
  22.     case $1 in
  23.     --)     shift; break;;
  24.  
  25.     -W)     shift
  26.             set -- -W"$@"
  27.             continue;;
  28.  
  29.     -[vF])  opts="$opts $1 '$2'"
  30.             shift;;
  31.  
  32.     -[vF]*) opts="$opts '$1'" ;;
  33.  
  34.     -f)     echo @include "$2" >> $igs
  35.             shift;;
  36.  
  37.     -f*)    f=`echo "$1" | sed 's/-f//'`
  38.             echo @include "$f" >> $igs ;;
  39.  
  40.     -?file=*)    # -Wfile or --file
  41.             f=`echo "$1" | sed 's/-.file=//'`
  42.             echo @include "$f" >> $igs ;;
  43.  
  44.     -?file)    # get arg, $2
  45.             echo @include "$2" >> $igs
  46.             shift;;
  47.  
  48.     -?source=*)    # -Wsource or --source
  49.             t=`echo "$1" | sed 's/-.source=//'`
  50.             echo "$t" >> $igs ;;
  51.  
  52.     -?source)  # get arg, $2
  53.             echo "$2" >> $igs
  54.             shift;;
  55.  
  56.     -?version)
  57.             echo igawk: version 1.0 1>&2
  58.             gawk --version
  59.             exit 0 ;;
  60.  
  61.     -[W-]*)    opts="$opts '$1'" ;;
  62.  
  63.     *)      break;;
  64.     esac
  65.  
  66.     shift
  67. done
  68.  
  69. if [ ! -s $igs ]
  70. then
  71.     if [ -z "$1" ]
  72.     then
  73.          echo igawk: no program! 1>&2
  74.          exit 1
  75.     else
  76.         echo "$1" > $igs
  77.         shift
  78.     fi
  79. fi
  80.  
  81. # at this point, $igs has the program
  82. gawk -f igawk.awk $igs > $ige
  83. eval gawk -f '$ige' $opts -- "$@"
  84.  
  85. exit $?
  86.